package cn.zyx.sys.service;

import cn.zyx.common.entity.Page;
import cn.zyx.common.properites.CacheProperties;
import cn.zyx.common.utils.cache.redis.RedisUtils;
import cn.zyx.sys.entity.SysConfig;
import cn.zyx.sys.mapper.SysConfigMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 系统配置Service
 *
 * @author zyx
 */
@Service
@Transactional(readOnly = true)
public class SysConfigService {

    @Autowired
    private SysConfigMapper mapper;

    public SysConfig get(String id) {
        if (RedisUtils.getCacheObject(CacheProperties.SYS_CONFIG + id) == null) {
            RedisUtils.setCacheObject(CacheProperties.SYS_CONFIG + id,mapper.get(id));
        }
        return RedisUtils.getCacheObject(CacheProperties.SYS_CONFIG+ id);
    }

    public List<SysConfig> findList(SysConfig sysConfig) {
        return mapper.findList(sysConfig);
    }

    public Page<SysConfig> findPage(Page<SysConfig> page, SysConfig sysConfig) {
        return mapper.findPage(page, sysConfig);
    }

    @Transactional(readOnly = false)
    public void save(SysConfig sysConfig) {
        mapper.save(sysConfig);
        RedisUtils.deleteObject(CacheProperties.SYS_CONFIG + sysConfig.getId());
    }

    @Transactional(readOnly = false)
    public void delete(SysConfig sysConfig) {
        mapper.delete(sysConfig);
        RedisUtils.deleteObject(CacheProperties.SYS_CONFIG + sysConfig.getId());
    }

}